/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mailserver;

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * La clase Hilo hereda de Thread los atributos para poder sobreescribirlo y usarlos en el proyecto MailServer
 * @author VICTORIA
 */
public class Hilo extends Thread{
    boolean estado;
    private MailClientForm formulario;
    
    /**
     * Constructor Hilo parametrizado, recibe un objeto tipo MailClientForm e inicializa el estado en true
     * @param formulario
     */
    public Hilo(MailClientForm formulario){
        this.formulario=formulario;
        estado=true;
    }

    /**
     *Constructor parametrizado
     * @param target
     */
    public Hilo(Runnable target) {
        super(target);
    }
    
    /**
     * Procedimiento RUN para utilizar el metodo de Thread 
     * Llama a metodos del formulario
     */
   @Override 
    public void run()throws ThreadDeath{
        try {
           
            while(estado){
                 sleep(30000);
                formulario.LlamarServidor();
                formulario.updateTablas();
            }
        } catch (InterruptedException ex) {
            Logger.getLogger(Hilo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    /**
     * Procedimiento PararHilo que detiene el hilo y coloca el estado en false y luego reanuda el estado del hilo
     */
    public void PararHilo(){
       suspend();
       estado=false;
       resume();
   }
    /**
     *Procedimiento Reset, Utiliza el metodo PararHilo y cambia el estado a TRUE
     */
    public void Reset(){
      PararHilo();
      estado=true;
   }
}
